class MessageContent:
    DefaultMaxLength = 100  # 设置消息列表的最大长度

    def __init__(self, defaultSetting):
        """
        初始化 MessageContent 对象。

        参数:
        defaultSetting (str): 系统默认设置消息。
        """
        self.messageList = [{"role": "system", "content": defaultSetting}]

    def getMessageList(self):
        """
        返回消息列表。

        返回:
        list: 消息列表，每个元素是字典，包含 'role' 和 'content'。
        """
        return self.messageList

    def addMessage(self, role, content):
        """
        添加一条消息到消息列表。

        参数:
        role (str): 消息的角色，例如 'user' 或 'assistant'。
        content (str): 消息的内容。

        如果消息列表长度达到或超过最大长度，删除第二条消息，保留第一条和后续消息。
        """
        if len(self.messageList) >= self.DefaultMaxLength:
            del self.messageList[1]  # 删除第二条消息
        self.messageList.append({"role": role, "content": content})

    def getLastMessage(self):
        """
        返回最后一条消息的内容。

        返回:
        str: 最后一条消息的内容。
        """
        return self.messageList[-1]["content"]
    
    def addToolReturn(self, tool_call_id, result):
        '''
        添加一条tool的返回值到消息列表

        参数:
        tool_call_id (str): tool_call的id
        result (str): 调用函数的结果

        如果消息列表长度达到或超过最大长度，删除第二条消息，保留第一条和后续消息。
        '''
        if len(self.messageList) >= self.DefaultMaxLength:
            del self.messageList[1]  # 删除第二条消息
        self.messageList.append({"role": 'tool', "tool_call_id": tool_call_id ,"content": result})
